using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Paginas_mantenedorAgentes : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    // Funcion que inserta un agente en la base de datos
    protected int insertarAgente(string rutAgente,string nombreAgente,string ubicacionAgente,int tipoAgente,bool estadoAgente) {
        AgentesBLL agentebll = new AgentesBLL();
        return agentebll.insertarAgente(rutAgente, nombreAgente, ubicacionAgente, tipoAgente, estadoAgente);
    }

    // Funcion que actualiza los datos de un agente
    protected int actualizarAgente(string rutAgente, string nombreAgente, string ubicacionAgente, int tipoAgente, bool estadoAgente)
    {
        AgentesBLL agentebll = new AgentesBLL();
        return agentebll.actualizarAgente(nombreAgente,ubicacionAgente,tipoAgente,estadoAgente,rutAgente);
    }
     
    // Funcion que toma los datos del mantenedor y llama a la funcion que ingresa el agente
    protected void ButtonIngresarAgente_Click(object sender, EventArgs e)
    {
        int tipoAgente;
        bool estadoAgente;
        if (DropDownListTipo.Text.CompareTo("Interno") == 0) tipoAgente = 1;
        else tipoAgente = 0;
        if (DropDownListEstado.SelectedValue.CompareTo("Empleado") == 0) estadoAgente = true;
        else estadoAgente = false;
        int filas_afectadas = actualizarAgente(TextBoxRut.Text, TextBoxNombre.Text, TextBoxUbicacion.Text,tipoAgente,estadoAgente);
        if(filas_afectadas == 0) insertarAgente(TextBoxRut.Text,TextBoxNombre.Text, TextBoxUbicacion.Text,tipoAgente, estadoAgente);
        GridViewAgentes.DataBind();    
    }

    // Funcion que inserta los datos del gridView en los textboxs.
    protected void GridViewAgentes_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataKey key = GridViewAgentes.SelectedDataKey;
        string rutAgente = (string)key.Value;
       
        AgentesBLL agentebll = new AgentesBLL();
        DataSetCarpay.AGENTEDataTable dt = agentebll.getAgente(rutAgente);
        TextBoxRut.Text = rutAgente;

        TextBoxNombre.Text = (string) dt.Rows[0][dt.NOMBRE_AGENTEColumn];
        TextBoxUbicacion.Text = (string) dt.Rows[0][dt.UBICACION_ACTUAL_AGENTEColumn];
        if ((int) dt.Rows[0][dt.TIPO_AGENTEColumn] == 1) DropDownListTipo.SelectedValue = "Interno";
        else DropDownListTipo.SelectedValue = "Externo";
        if ((bool) dt.Rows[0][dt.ESTADO_AGENTEColumn]) DropDownListEstado.SelectedValue = "Empleado";
        else DropDownListEstado.SelectedValue = "Desempleado";
        TextBoxRut.Enabled = false;
        DropDownListEstado.Enabled = true;
    }

    // Funcion que elimina un agente dado el rut indicado
    protected void ButtonEliminar_Click(object sender, EventArgs e)
    {
        AgentesBLL agentebll = new AgentesBLL();
        agentebll.eliminarAgente(TextBoxRut.Text);
    }

    // Funcion que resetea los textbox
    protected void ButtonNuevo_Click(object sender, EventArgs e)
    {
        TextBoxRut.Text = "";
        TextBoxNombre.Text = "";
        TextBoxUbicacion.Text = "";
        DropDownListTipo.SelectedValue = "Interno";
        DropDownListEstado.SelectedValue = "Empleado";
    }

    protected void ButtonBuscar_Click(object sender, EventArgs e)
    {
        
    }
}
